package com.faner.fast.csv.annotation;

import com.faner.fast.csv.converters.DefaultConvertible;
import com.faner.fast.csv.converters.ReadConvertible;
import com.faner.fast.csv.converters.WriteConvertible;

import java.lang.annotation.*;

/**
 * `@ResponseExcel 注解`
 */
@Documented
@Target({ElementType.METHOD,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ResponseCsv {

	/**
	 * 属性的标题名称
	 *
	 * @return 表头名
	 */
	String title();

	/**
	 * 写数据转换器
	 *
	 * @return 写入Excel数据转换器
	 * @see WriteConvertible
	 */
	Class<? extends WriteConvertible> writeConverter()
			default DefaultConvertible.class;

	/**
	 * 读数据转换器
	 *
	 * @return 读取Excel数据转换器
	 * @see ReadConvertible
	 */
	Class<? extends ReadConvertible> readConverter()
			default DefaultConvertible.class;

	/**
	 * 在excel的顺序
	 *
	 * @return 列表顺序
	 */
	int order() default Integer.MAX_VALUE;

}
